package com.yakumosakura.yakumoblade.registry.slashblade;


import com.yakumosakura.yakumoblade.specialeffects.colorSE.Eternal;
import com.yakumosakura.yakumoblade.specialeffects.colorSE.VeryBlue;
import com.yakumosakura.yakumoblade.specialeffects.colorSE.VeryGreen;
import com.yakumosakura.yakumoblade.specialeffects.ses.*;
import com.yakumosakura.yakumoblade.specialeffects.starSE.Highfrequency;
import com.yakumosakura.yakumoblade.specialeffects.starSE.ex.*;
import com.yakumosakura.yakumoblade.specialeffects.starSE.re.*;
import com.yakumosakura.yakumoblade.specialeffects.touhouSE.DreamSE;
import com.yakumosakura.yakumoblade.specialeffects.touhouSE.Gapgap;
import com.yakumosakura.yakumoblade.specialeffects.touhouSE.LwtSE;
import com.yakumosakura.yakumoblade.specialeffects.touhouSE.*;
import com.yakumosakura.yakumoblade.specialeffects.swordart.*;
import mods.flammpfeil.slashblade.registry.specialeffects.SpecialEffect;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.RegistryObject;
import com.yakumosakura.yakumoblade.specialeffects.hexgam.*;
import com.yakumosakura.yakumoblade.specialeffects.theblades.*;

import static com.yakumosakura.yakumoblade.Yakumoblade.MODID;

public class YASpecialEffectsRegistry {
    //se注册表
    //这就是注册se的地方
    public static final DeferredRegister<SpecialEffect> REGISTRY_KEY2;//这玩意是最重要的
    public static final RegistryObject<SpecialEffect> VERY_GREEN;//一个常量对应一个se
    public static final RegistryObject<SpecialEffect> ETERNAL;
    public static final RegistryObject<SpecialEffect> VERY_BLUE;
    public static final RegistryObject<SpecialEffect> STAR_SOUL;
    public static final RegistryObject<SpecialEffect> SUN_SOUL;
    public static final RegistryObject<SpecialEffect> highfrequency;
    public static final RegistryObject<SpecialEffect> gapgap;
    public static final RegistryObject<SpecialEffect> yuyuko;
    public static final RegistryObject<SpecialEffect> blackslashbreak;//暗星魔斩魂
    public static final RegistryObject<SpecialEffect> Greenstarsoul;//暗星魔斩魂
    public static final RegistryObject<SpecialEffect> StarSname;//史达之名
    public static final RegistryObject<SpecialEffect> HexGamFox;//狐·神佑
    public static final RegistryObject<SpecialEffect> HexGamDragon;//龙·神佑
    public static final RegistryObject<SpecialEffect> Foxsoul;//狐星魂
    public static final RegistryObject<SpecialEffect> FoxsoulEX;//炽狐星烈魂
    public static final RegistryObject<SpecialEffect> ThunderSoul;//天雷魂
    public static final RegistryObject<SpecialEffect> FoxSoulBlue;//寒狐极致魂
    public static final RegistryObject<SpecialEffect> StarDriveEdges;//星刃风暴
    public static final RegistryObject<SpecialEffect> ProudSoulDrive;//耀魂刃旋
    public static final RegistryObject<SpecialEffect> FinalAllMake;//终局永劫魂
    public static final RegistryObject<SpecialEffect> Dream;//梦符·双灵追尾
    public static final RegistryObject<SpecialEffect> Lwt;//嗜血
    public static final RegistryObject<SpecialEffect> ExMode;//幻刃连斩
    public static final RegistryObject<SpecialEffect> YouKai;//妖性
    public static final RegistryObject<SpecialEffect> FoxBlade;//招财狐
    public static final RegistryObject<SpecialEffect> SwordArtOnCrow;//鸦羽流法
    public static final RegistryObject<SpecialEffect> SwordArtOnGap;//隙间流法
    public static final RegistryObject<SpecialEffect> SwordArtOnDead;//亡蝶流法
    public static final RegistryObject<SpecialEffect> SwordArtOnDMC;//力量流法
    public static final RegistryObject<SpecialEffect> SwordArtOnFOX;//六芒流法·狐
    public static final RegistryObject<SpecialEffect> SwordArtOnDRAGON;//六芒流法·龙
    public static final RegistryObject<SpecialEffect> MakeGaps;//境界 · 神隠
    public static final RegistryObject<SpecialEffect> LostHeart;//残心
    public static final RegistryObject<SpecialEffect> YuyukoSe;//死蝶 · 樱吹雪葬
    public static final RegistryObject<SpecialEffect> BeyondYuyuko;//彼岸 · 噬魂之契
    public static final RegistryObject<SpecialEffect> SharpnessBlade;//利刃
    public static final RegistryObject<SpecialEffect> GhostBlade;//灵性
    public static final RegistryObject<SpecialEffect> GreatSunSoul;//崇高赤日魂
    public static final RegistryObject<SpecialEffect> ObsdianFoxSoul;//黑曜神狐魂
    public YASpecialEffectsRegistry() {
    }

    static {
        //这段照着写就行
        REGISTRY_KEY2 = DeferredRegister.create(SpecialEffect.REGISTRY_KEY, MODID);
        //括号里前面写注册名后面写实现类
        VERY_GREEN = REGISTRY_KEY2.register("very_green", VeryGreen::new);
        ETERNAL=REGISTRY_KEY2.register("eternal", Eternal::new);
        VERY_BLUE= REGISTRY_KEY2.register("very_blue", VeryBlue::new);
        STAR_SOUL=REGISTRY_KEY2.register("star_soul", StarSoul::new);
        SUN_SOUL=REGISTRY_KEY2.register("sun_soul", SunSoul::new);
        highfrequency=REGISTRY_KEY2.register("highfrequency", Highfrequency::new);
        gapgap=REGISTRY_KEY2.register("gapgap", Gapgap::new);
        yuyuko=REGISTRY_KEY2.register("yuyuko", Yuyuko::new);
        blackslashbreak=REGISTRY_KEY2.register("blackslashbreak", StarSoulEX::new);
        Greenstarsoul=REGISTRY_KEY2.register("greenstarsoul", StarSoulEX::new);
        StarSname=REGISTRY_KEY2.register("starsname", StarSoulEX::new);
        HexGamFox=REGISTRY_KEY2.register("hexgamfox",HexGam::new);
        HexGamDragon=REGISTRY_KEY2.register("hexgamdragon", HexGam::new);
        Foxsoul=REGISTRY_KEY2.register("foxsoul", FoxSoul::new);
        FoxsoulEX=REGISTRY_KEY2.register("foxsoulex", StarSoulEX::new);
        ThunderSoul=REGISTRY_KEY2.register("thundersoul", ThunderSoul::new);
        FoxSoulBlue=REGISTRY_KEY2.register("foxsoulblue", BlueFoxSoul::new);
        StarDriveEdges=REGISTRY_KEY2.register("stardriveedge", StarDriveEdge::new);
        ProudSoulDrive=REGISTRY_KEY2.register("proud_soul_drive", ProudSoulDrive::new);
        FinalAllMake=REGISTRY_KEY2.register("final_all_make", FinalAllMake::new);
        Dream=REGISTRY_KEY2.register("dream", DreamSE::new);
        Lwt=REGISTRY_KEY2.register("lwt", LwtSE::new);
        ExMode=REGISTRY_KEY2.register("exmode", ExMode::new);
        YouKai=REGISTRY_KEY2.register("youkai", YouKai::new);
        FoxBlade=REGISTRY_KEY2.register("foxblade", FoxBlade::new);
        SwordArtOnCrow =REGISTRY_KEY2.register("sword_art_on_dinzeer", Eternal::new);
        SwordArtOnGap=REGISTRY_KEY2.register("sword_art_on_gap", Eternal::new);
        SwordArtOnDead=REGISTRY_KEY2.register("sword_art_on_dead", Eternal::new);
        SwordArtOnDMC=REGISTRY_KEY2.register("sword_art_on_dmc", Eternal::new);
        SwordArtOnFOX=REGISTRY_KEY2.register("sword_art_on_fox", Eternal::new);
        SwordArtOnDRAGON=REGISTRY_KEY2.register("sword_art_on_dragon", Eternal::new);
        MakeGaps=REGISTRY_KEY2.register("make_gap", MakeGap::new);
        LostHeart=REGISTRY_KEY2.register("lost_heart", LostHeart::new);
        YuyukoSe=REGISTRY_KEY2.register("yuyukose", YuyukoSe::new);
        BeyondYuyuko=REGISTRY_KEY2.register("beyond_yuyuko", BeyondYuyuko::new);
        SharpnessBlade=REGISTRY_KEY2.register("sharpness_blade", SharpnessBlade::new);
        GhostBlade=REGISTRY_KEY2.register("ghost_blade", GhostBlade::new);
        GreatSunSoul =REGISTRY_KEY2.register("great_sun_soul", GreatSunSoul::new);
        ObsdianFoxSoul=REGISTRY_KEY2.register("obsidian_fox_soul", ObsdianFoxSoul::new);
    }
}